package com.ssy.lingxi.settle.accounts.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.settle.accounts.model.vo.request.*;
import com.ssy.lingxi.settle.accounts.model.vo.response.PlatformSettlementStrategyDetailVO;
import com.ssy.lingxi.settle.accounts.model.vo.response.PlatformSettlementStrategyVO;

/**
 * 平台结算策略接口
 * @author 伍将
 * @date 2020/11/4
 * @version 2.0.0
 */
public interface IPlatformSettlementStrategyService {

    /**
     * 分页查询平台结算策略
     * @author 伍将
     * @date 2020/11/4
     * @param sysUser:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.settle.accounts.mode.vo.response.PlatformSettlementStrategyVO>>
     **/
    Wrapper<PageData<PlatformSettlementStrategyVO>> pageStrategy(UserLoginCacheDTO sysUser, PlatformSettlementStrategyPageVO pageVO);

    /**
     * 设置平台结算策略状态
     * @author 伍将
     * @date 2020/11/4
     * @param sysUser:
     * @param setStatusVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> setStatus(UserLoginCacheDTO sysUser, PlatformSettlementStrategySetStatusVO setStatusVO);

    /**
     * 查询平台结算策略详情
     * @author 伍将
     * @date 2020/11/4
     * @param id:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.settle.accounts.mode.vo.response.PlatformSettlementStrategyDetailVO>
     **/
    Wrapper<PlatformSettlementStrategyDetailVO> getDetail(Long id);

    /**
     * 新增平台结算策略
     * @author 伍将
     * @date 2020/11/4
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper<java.lang.Long>
     **/
    Wrapper<Long> add(UserLoginCacheDTO sysUser, PlatformSettlementStrategyAddVO addVO);

    /**
     * 更新平台结算策略
     * @author 伍将
     * @date 2020/11/4
     * @param updateVO:
     * @return com.ssy.lingxi.common.response.Wrapper<java.lang.Long>
     **/
    Wrapper<Long> update(UserLoginCacheDTO sysUser, PlatformSettlementStrategyUpdateVO updateVO);

    /**
     * 删除平台结算策略
     * @author 伍将
     * @date 2020/12/24
     * @param sysUser:
     * @param deleteVO:
     **/
    Wrapper<Void> delete(UserLoginCacheDTO sysUser, PlatformSettlementStrategyDeleteVO deleteVO);
}
